package com.nuc.seckill.service;

import com.nuc.seckill.base.CommonQueryBean;
import com.nuc.seckill.model.SeckillProducts;

import java.util.List;

/**
 * @author 石一歌
 * @date 2022-08-05 21:51
 */
public interface ProductsService {
    /**
     * 查询（根据主键ID查询）
     *
     * @param id id
     * @return com.nuc.seckill.model.SeckillProducts
     * @author 石一歌
     * @date 2022/8/11 14:53
     */
    SeckillProducts selectByPrimaryKey(Long id);

    /**
     * 添加
     *
     * @param record 记录
     * @return int
     * @author 石一歌
     * @date 2022/8/11 14:54
     */
    int insert(SeckillProducts record);

    /**
     * 修改 （匹配有值的字段）
     *
     * @param record 记录
     * @return int
     * @author 石一歌
     * @date 2022/8/11 14:54
     */
    int updateByPrimaryKeySelective(SeckillProducts record);

    /**
     * list分页查询
     *
     * @param record 记录
     * @param query  查询条件
     * @return java.util.List<com.nuc.seckill.model.SeckillProducts>
     * @author 石一歌
     * @date 2022/8/11 14:54
     */
    List<SeckillProducts> list4Page(SeckillProducts record, CommonQueryBean query);

    /**
     * count查询
     *
     * @param record 记录
     * @return long
     * @author 石一歌
     * @date 2022/8/11 14:54
     */
    long count(SeckillProducts record);

    /**
     * list查询
     *
     * @param record 记录
     * @return java.util.List<com.nuc.seckill.model.SeckillProducts>
     * @author 石一歌
     * @date 2022/8/11 14:54
     */
    List<SeckillProducts> list(SeckillProducts record);

    /**
     * 唯一索引保证新增的数据唯一
     *
     * @param record 记录
     * @return java.lang.Long
     * @author 石一歌
     * @date 2022/8/11 14:55
     */
    Long uniqueInsert(SeckillProducts record);

    /**
     * 产品唯一键查询
     *
     * @param productPeriodKey 产品唯一键
     * @return com.nuc.seckill.model.SeckillProducts
     * @author 石一歌
     * @date 2022/8/11 14:55
     */
    SeckillProducts findByProductPeriodKey(String productPeriodKey);
}
